// ++++++++++++++++++++++++++++++++++++++++
// 《Go 语言+Vue.js 实战派——基于 Gin 框架》源码
// ++++++++++++++++++++++++++++++++++++++++
// 作者公众号：源码大数据
// 自媒体账号（抖音、视频号、快手、B站、知乎）：廖显东-ShirDon
// 仓库地址：https://gitee.com/shirdonl/goGinVue.git
// 仓库地址：https://github.com/shirdonl/goGinVue.git
// // 博客：https://www.shirdon.com
// 购买图书：https: //item.jd.com/14958064.html
// ++++++++++++++++++++++++++++++++++++++++

package main

import (
	"github.com/gin-gonic/gin"
	"net/http"
)

// 定义一个 User 结构体来表示用户数据
type User struct {
	ID   string `json:"id"`
	Name string `json:"name"`
	// Add other user fields as needed
}

// 用于测试的虚拟用户数据
var users = []User{
	{ID: "1", Name: "Alice"},
	{ID: "2", Name: "Bob"},
}

func main() {
	r := gin.Default()
	r.GET("/users/:id", getUser)
	r.Run(":8080")
}

func getUser(c *gin.Context) {
	id := c.Param("id")
	// 查询数据库或执行其他业务逻辑
	user := getUserById(id)
	if user == nil {
		c.JSON(http.StatusNotFound, gin.H{"error": "User not found"})
		return
	}
	//返回响应给客户端
	c.JSON(http.StatusOK, user)
}

func getUserById(id string) *User {
	// 在这里实现您的数据库查询逻辑
	// 在此示例中，我们使用虚拟用户切片进行测试
	for _, user := range users {
		if user.ID == id {
			return &user
		}
	}
	return nil
}
